Excel VBA中判断word文件是否打开,未打开则打开该文件

您所在的位置:网站首页 VBA 关闭WORD Excel VBA中判断word文件是否打开,未打开则打开该文件

Excel VBA中判断word文件是否打开,未打开则打开该文件

2024-07-15 22:09:04| 来源: 网络整理| 查看: 265

需求与场景

在Excel的VBA中,打开Word文件是比较容易的,但判断某个word文件是否已经打开,则有些小坑需要注意。

因为工作需求,要把Excel中的数据写入到指定的word文件里(用链接的方式经常会出现word无响应的状况,而且数据量大的时候,打开速度实在太慢。),所以就研究了一下如何判断word文件是否被打开的情形。参考了一些资料,结合自己的理解,记录如下。

Excel VBA代码 ① 首先要在ExcelVBA工程中引入word

工具-引用,选取MicroSoft Word xx.0 Object Library

②判断指定word文件是否打开(函数) Function WordDocIsOpen(ByVal strDocName As String) As Boolean 'objWordDocName 这个变量的目的是接收一下循环出来的objWordDoc的文件名, '如果没有的话会导致if条件无法正确判断(office2010试验后结果) Dim objWordDocName As String Dim objWordApp As Object Dim objWordDoc As Object On Error Resume Next '此句是关键,因为当word文件没有被打开时,会直接报错(GetObject:Run-time error '429':) strDocName = UCase(strDocName) '将文件名字母全部大写。注意:这个参数变量必须是全路径+文件名 Set objWordApp = GetObject(, "Word.Application") For Each objWordDoc In objWordApp.Documents '遍历当前在 Word 中打开的所有 Document 对象的集合 objWordDocName = UCase(objWordDoc.FullName) 'FullName是完整路径+文件名 If objWordDocName = strDocName Then WordDocIsOpen = True Exit For Else WordDocIsOpen = False End If Next Set objWordDoc = Nothing '清变量 Set objWordApp = Nothing End Function ③判断后,打开word文件(使用函数) Sub OpenWord() If WordDocIsOpen("D:\Test\test.docx") Then MsgBox "该word文件已经被打开。" Else Set wrd = CreateObject("Word.Application") wrd.Visible = True wrd.Documents.Open fileName:="D:\Test\test.docx" Set wrd = Nothing End If End Sub ④其他一些说明

1、判断word文件是否被打开以及打开了几个,要用GetObject,而不能用CreateObject。 GetObject与CreateObject可以参看这个微软文档,写的很清楚。(无论多么简单的语言,都必须多看文档,少百度)

GetObject is used to attach to a running instance of an automation server. CreateObject is used to start a new instance of an Automation server.

2、如果不想用objWordDoc.FullName这种完整路径名的写法,可以用objWordDoc.Name,参数文件名可以这样截取:

strPath = "D:\Test\test.docx" docName = Right(strPath, Len(strPath) - InStrRev(strPath, "\")) 参考引用的资料

判断指定的WORD文档是否被打开的函数代码 微软文档:word与其他应用程序进行通讯 微软文档:word(Documents对象)



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭